<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
  <script>
    /* 
        Window对象
            - 在浏览器中，浏览器为我们提供了一个window对象，可以直接访问
            - window对象代表的是浏览器窗口，通过该对象可以对浏览器窗口进行各种操作
             除此之外window对象还负责存储JS中的内置对象和浏览器的宿主对象
             - window对象的树形可以通过window对象访问，也可以直接访问
             - 函数就可以认为是windwo对象的方法
    */
    /* 
        var用来声明变量，作用和let相同，但是var不具有块作用域
        - 在全局中使用var声明的变量，都会作为window对象的属性保存
        - 使用function声明的函数，都会作为window的方法保存
        - 使用let声明的变量不会存储在window对象上
    */
    var ab = 30;
    window.a = 20;
    let c = 11;
    function aa() {}
    b = 29;
    // console.log(window.b, "window");
    function fn2() {
      var d = 90; //var 虽然没有块作用域，但有函数作用域
      d = 30; // 在局部作用域中，如果没有使用var或let声明变量，则变量会自动成为window对象的属性，也就是全局变量
    }
    fn2();
    console.log(d, "ddd");
  </script>
</html>
